package com.huitone.gddw.service.system;

import java.util.List;

import com.huitone.gddw.dao.entity.Users;
import com.huitone.gddw.model.support.QueryPage;
import com.huitone.gddw.service.dto.system.UsersDTO;

/**
 * 用户管理 接口
 * @author wuluodan
 *
 */
public interface IUsersService {

	/**
	 * 分页查询
	 * @param page QueryPage
	 * @return QueryPage
	 */
	QueryPage<UsersDTO> selectPage(QueryPage<Users> page);
	
	/**
	 * 根据用户ID获取用户信息
	 * @param userId 用户ID
	 * @return Users
	 */
	Users getById(String userId);
	
	/**
	 * 获取所有用户信息
	 * @return List<Users>
	 */
	List<Users> getAll();
	
	/**
	 * 根据主键获取修改页面数据
	 * @param userId 用户ID
	 * @return UsersDTO
	 */
	UsersDTO toUpdate(String userId);
	
	/**
	 * 改变状态
	 * @param entity Users
	 */
	void changeStatus(Users entity);
	
	/**
	 * 保存
	 * @param usersDTO UsersDTO
	 */
	void save(Users entity, String deptId);
	
	/**
	 * 更新
	 * @param usersDTO UsersDTO
	 */
	void update(UsersDTO usersDTO);
	
	/**
	 * 更新
	 * @param users Users
	 */
	void update(Users users);
	
	/**
	 * 删除
	 * @param userId 用户ID
	 */
	void delete(String userId);
	
	/**
	 * 累计登录失败次数
	 * @param entity 用户
	 * @return int
	 */
	int addFailCount(Users entity);
	
	/**
	 * 冻结用户
	 * @param entity 用户
	 */
	void freezeUser(Users entity);
	
}
